home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Zoom 2
/
Zoom - Release 2 (1996)(Active Software)[!].iso
/
graphics
/
raytracing
/
texturestudio
/
rexx.lha
/
RotatePlanetAnim.tsrx
< prev
next >
Wrap
Text File
|
1995-03-25
|
4KB
|
157 lines
/* TextureStudio ARexx script **************************************/
/* Allow commands to return results */
options results
/* On error, goto ERROR:. Comment out this line if you wish to */
/* perform your own error checking. */
signal on error
/* BEGIN PROGRAM *************************************************/
/* Constants */
AXIS_SLANT = 12
address "TEXTURESTUDIO"
/* Bring TextureStudio's screen to the front */
SCREEN_FRONT
/* Stop input to windows */
GUI_BLOCK
/* Get user's texture path */
TEXTUREPATH_GET VAR 'texture_path'
/* Ask user to select gasgiant texture */
REQUEST_FILE PATHPART '"'texture_path'"' FILEPART '"GasGiant.itx"',
PATTERN '"#?.itx"' TITLE '"Select GasGiant texture"' VAR 'texture_file'
/* Ask user for destination path */
REQUEST_DIR PATHPART '"Ram:"' TITLE '"Select destination directory"',
VAR 'dest_path'
/* Ask user to select number of frames */
REQUEST_MESSAGE TEXT '"Select the number of frames"',
BUTTONTEXT '"75|50|25|10"' VAR 'selected'
select
when selected = 0 then no_frames = 10
when selected = 1 then no_frames = 75
when selected = 2 then no_frames = 50
when selected = 3 then no_frames = 25
end
/* Open selected texture and flush out all others */
OPEN '"'texture_file'"' FLUSH
/* Set axis on slight slant */
AXIS_SET Y_ALIGNMENT AXIS_SLANT
/* Map image onto plane */
OBJECT_SET SPHERE
/* Render each frame */
do frame = 1 to no_frames
angle = ( (frame - 1) / no_frames) * 360 - 180
/* Set axis z alignment */
AXIS_SET Z_ALIGNMENT angle
/* Render screen in background */
RENDER TOBACK
/* Save out renderscreen */
dest_filepart = 'Frame' || (frame + 99) || '.HAM'
FILE_JOIN PATHPART '"'dest_path'"',
FILEPART '"'dest_filepart'"' VAR 'dest_file'
RENDERSCREEN_SAVE FILE '"'dest_file'"' FORCE
end
/* Allow input back to windows */
GUI_UNBLOCK
/* END PROGRAM ***************************************************/
exit
/* On ERROR */
ERROR:
/* If we get here, either an error occurred with the command's */
/* execution or there was an error with the command itself. */
/* In the former case, rc2 contains the error message and in */
/* the latter, rc2 contains an error number. SIGL contains */
/* the line number of the command which caused the jump */
/* to ERROR: */
if datatype(rc2,'NUMERIC') == 1 then do
/* See if we can describe the error with a string */
select
when rc2 == 103 then
err_string = "ERROR 103, "||,
"out of memory at line "||SIGL
when rc2 == 114 then
err_string = "ERROR 114, "||,
"bad command template at line "||SIGL
when rc2 == 115 then
err_string = "ERROR 115, "||,
"bad number for /N argument at line "||SIGL
when rc2 == 116 then
err_string = "ERROR 116, "||,
"required argument missing at line "||SIGL
when rc2 == 117 then
err_string = "ERROR 117, "||,
"value after keywork missing at line "||SIGL
when rc2 == 118 then
err_string = "ERROR 118, "||,
"wrong number of arguments at line "||SIGL
when rc2 == 119 then
err_string = "ERROR 119, "||,
"unmatched quotes at line "||SIGL
when rc2 == 120 then
err_string = "ERROR 120, "||,
"line too long at line "||SIGL
when rc2 == 236 then
err_string = "ERROR 236, "||,
"unknown command at line "||SIGL
otherwise
err_string = "ERROR "||rc2||" at line "||SIGL
end
end
else if rc2 == 'RC2' then do
err_string = "ERROR in command at line "||SIGL
end
else do
err_string = rc2||", line "||SIGL
end
say err_string
/* Unblock windows, just incase they are still blocked by the program being */
/* terminated mid-way */
GUI_UNBLOCK
exit